/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ua.lviv.franko.matrix;

import java.util.List;

/**
 * 
 * @author marko
 */
public interface IMatrix {
	// добавляет значение value к ячейке [row,col]
	void addValue(int row, int col, double value);

	// возвращает ненулевые значения и индексы ячеек столбца d,
	// которые находятся ниже главной диагонали
	void getJCol(int d, int[] indexes, double[] values);

	List<Integer> getJColIndex(int d);

	List<Double> getJColValues(int d);

	// возвращает ненулевые значения и индексы ячеек строки d,
	// которые находятся правее главной диагонали
	void getJRow(int d, int[] indexes, double[] values);

	List<Integer> getJRowIndex(int d);

	List<Double> getJRowValues(int d);

	// возвращает порядок матрицы
	int getN();

	// возвращает значение ячейки [row,col]
	double getValue(int row, int col);

	// устанавливает значение value в ячейку с координатами [row,col];
	// row - номер строки матрицы
	// col - номер столбца матрицы
	void setValue(int row, int col, double value);

}
